package com.pt25.base.model.websocket;

import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;

public interface WebsocketHandler {
    void handleTextMessage(ChannelHandlerContext ctx, TextWebSocketFrame msg);

    void handleBinaryMessage(ChannelHandlerContext channelHandlerContext, BinaryWebSocketFrame binaryWebSocketFrame);

    void handleErrorMessage(ChannelHandlerContext ctx, Throwable cause);

    void handleChannelActive(ChannelHandlerContext ctx);

    void handleChannelInactive(ChannelHandlerContext ctx);

    Boolean checkAuthorization(ChannelHandlerContext ctx, FullHttpRequest request);
    /**
     * @param status 心跳状态 0 正常连接 1 断开连接
     */
    void handleHeartbeat(ChannelHandlerContext ctx, Integer status);
}
